<Project Sdk="Microsoft.NET.Sdk">

  <PropertyGroup>
    <TargetFrameworks>$(NetCoreAppCurrent)-windows;$(NetCoreAppCurrent);$(NetCoreAppMinimum)-windows;$(NetCoreAppMinimum);netstandard2.0</TargetFrameworks>
    <TargetFrameworks Condition="'$(NetCoreAppPrevious)' != ''">$(TargetFrameworks);$(NetCoreAppPrevious)-windows;$(NetCoreAppPrevious)</TargetFrameworks>
    <AllowUnsafeBlocks>true</AllowUnsafeBlocks>
    <UseCompilerGeneratedDocXmlFile>false</UseCompilerGeneratedDocXmlFile>
    <IsPackable>true</IsPackable>
    <AddNETFrameworkPlaceholderFileToPackage>true</AddNETFrameworkPlaceholderFileToPackage>
    <AddXamarinPlaceholderFilesToPackage>true</AddXamarinPlaceholderFilesToPackage>
    <AddNETFrameworkAssemblyReferenceToPackage>true</AddNETFrameworkAssemblyReferenceToPackage>
    <PackageDescription>Provides classes to use caching facilities.

Commonly Used Types:
System.Runtime.Caching.CacheEntryChangeMonitor
System.Runtime.Caching.CacheEntryRemovedArguments
System.Runtime.Caching.CacheEntryUpdateArguments
System.Runtime.Caching.CacheItem
System.Runtime.Caching.CacheItemPolicy
System.Runtime.Caching.ChangeMonitor
System.Runtime.Caching.FileChangeMonitor
System.Runtime.Caching.HostFileChangeMonitor
System.Runtime.Caching.MemoryCache
System.Runtime.Caching.ObjectCache</PackageDescription>

    <!-- TODO https://github.com/dotnet/runtime/issues/90400: Annotate for nullable reference types -->
    <Nullable>disable</Nullable>
    <NoWarn>$(NoWarn);nullable</NoWarn>
  </PropertyGroup>

  <ItemGroup>
    <Compile Include="System\Runtime\Caching\Counters.cs" />
    <Compile Include="System\Runtime\Caching\CacheEntryChangeMonitor.cs" />
    <Compile Include="System\Runtime\Caching\CacheEntryRemovedArguments.cs" />
    <Compile Include="System\Runtime\Caching\CacheEntryRemovedCallback.cs" />
    <Compile Include="System\Runtime\Caching\CacheEntryRemovedReason.cs" />
    <Compile Include="System\Runtime\Caching\CacheEntryUpdateArguments.cs" />
    <Compile Include="System\Runtime\Caching\CacheEntryUpdateCallback.cs" />
    <Compile Include="System\Runtime\Caching\CacheExpires.cs" />
    <Compile Include="System\Runtime\Caching\CacheItem.cs" />
    <Compile Include="System\Runtime\Caching\CacheItemPolicy.cs" />
    <Compile Include="System\Runtime\Caching\CacheItemPriority.cs" />
    <Compile Include="System\Runtime\Caching\CacheMemoryMonitor.cs" />
    <Compile Include="System\Runtime\Caching\CacheUsage.cs" />
    <Compile Include="System\Runtime\Caching\ChangeMonitor.cs" />
    <Compile Include="System\Runtime\Caching\Dbg.cs" />
    <Compile Include="System\Runtime\Caching\DefaultCacheCapabilities.cs" />
    <Compile Include="System\Runtime\Caching\EntryState.cs" />
    <Compile Include="System\Runtime\Caching\FileChangeMonitor.cs" />
    <Compile Include="System\Runtime\Caching\FileChangeNotificationSystem.cs" />
    <Compile Include="System\Runtime\Caching\HostFileChangeMonitor.cs" />
    <Compile Include="System\Runtime\Caching\MemoryCache.cs" />
    <Compile Include="System\Runtime\Caching\MemoryCacheEntry.cs" />
    <Compile Include="System\Runtime\Caching\MemoryCacheEntryChangeMonitor.cs" />
    <Compile Include="System\Runtime\Caching\MemoryCacheKey.cs" />
    <Compile Include="System\Runtime\Caching\MemoryCacheKeyEqualityComparer.cs" />
    <Compile Include="System\Runtime\Caching\MemoryCacheStatistics.cs" />
    <Compile Include="System\Runtime\Caching\MemoryCacheStore.cs" />
    <Compile Include="System\Runtime\Caching\MemoryMonitor.cs" />
    <Compile Include="System\Runtime\Caching\ObjectCache.cs" />
    <Compile Include="System\Runtime\Caching\OnChangedCallback.cs" />
    <Compile Include="System\Runtime\Caching\CounterName.cs" />
    <Compile Include="System\Runtime\Caching\PhysicalMemoryMonitor.cs" />
    <Compile Include="System\Runtime\Caching\SafeBitVector32.cs" />
    <Compile Include="System\Runtime\Caching\SRef.cs" />
    <Compile Include="System\Runtime\Caching\Configuration\CachingSectionGroup.cs" />
    <Compile Include="System\Runtime\Caching\Configuration\ConfigUtil.cs" />
    <Compile Include="System\Runtime\Caching\Configuration\MemoryCacheElement.cs" />
    <Compile Include="System\Runtime\Caching\Configuration\MemoryCacheSection.cs" />
    <Compile Include="System\Runtime\Caching\Configuration\MemoryCacheSettingsCollection.cs" />
    <Compile Include="System\Runtime\Caching\Hosting\IApplicationIdentifier.cs" />
    <Compile Include="System\Runtime\Caching\Hosting\IFileChangeNotificationSystem.cs" />
    <Compile Include="System\Runtime\Caching\Hosting\IMemoryCacheManager.cs" />
    <Compile Include="System\Runtime\Caching\Resources\RH.cs" />
  </ItemGroup>

  <ItemGroup Condition="'$(TargetPlatformIdentifier)' == 'windows'">
    <Compile Include="System\Runtime\Caching\MemoryMonitor.Windows.cs" />
    <Compile Include="System\Runtime\Caching\PhysicalMemoryMonitor.Windows.cs" />
    <Compile Include="$(CommonPath)Interop\Windows\Interop.BOOL.cs" Link="Common\Interop\Windows\Interop.BOOL.cs" />
    <Compile Include="$(CommonPath)Interop\Windows\Kernel32\Interop.GlobalMemoryStatusEx.cs" Link="Common\Interop\Windows\Kernel32\Interop.GlobalMemoryStatusEx.cs" />
    <Compile Include="$(CommonPath)Interop\Windows\Kernel32\Interop.MEMORYSTATUSEX.cs" Link="Common\Interop\Windows\Kernel32\Interop.MEMORYSTATUSEX.cs" />
    <Compile Include="$(CommonPath)Interop\Windows\Interop.Libraries.cs" Link="Common\Interop\Windows\Interop.Libraries.cs" />
  </ItemGroup>

  <ItemGroup Condition="'$(TargetPlatformIdentifier)' != 'windows'">
    <Compile Include="System\Runtime\Caching\PhysicalMemoryMonitor.Unix.cs" />
  </ItemGroup>

  <ItemGroup>
    <ProjectReference Include="$(LibrariesProjectRoot)System.Configuration.ConfigurationManager\src\System.Configuration.ConfigurationManager.csproj" />
  </ItemGroup>

</Project>
